package com.springboot.example.monitor.timetask;

import com.springboot.example.monitor.domain.model.ProjectInfo;
import com.springboot.example.monitor.util.SocketUtils;
import com.springboot.example.monitor.util.WeixinUtils;
import com.springboot.example.monitor.util.XmlUtil;

import java.util.List;
import java.util.Map;

/**
 * 作者: guo yao
 * 日期: 2016年02月26日
 * 时间: 下午15:04
 */
public class ServerMonitor {


    public void worker() throws Throwable {
        List<ProjectInfo> projectInfos = XmlUtil.readServerInfo();
        for (ProjectInfo info : projectInfos) {
            if (!SocketUtils.checkPort(info.getIp(), Integer.valueOf(info.getPort()))) {
                //开始报警
                //读取报警用户表 // 根据当天来查询
                //判断是否发送过，是否在发送范围
                //写入logs
                XmlUtil.addLogsInfo(info);
                //读取发送人列表
                Map<String, Boolean> userIds = XmlUtil.readSenderInfo();
                //发送消息
                for (Map.Entry<String, Boolean> entry : userIds.entrySet()) {
                    if (entry.getValue()) {
                        StringBuffer sb = new StringBuffer();
                        sb.append("域名[").append(info.getDomain()).append("]");
                        sb.append("项目名称[").append(info.getName()).append("]");
                        sb.append("IP地址[").append(info.getIp()).append("]");
                        sb.append("端口[").append(info.getPort()).append("]");
                        sb.append("连接失败,请尽快处理");
                        WeixinUtils.sendWeixinInfo(entry.getKey(), sb.toString());
                    }
                }
            }
        }

    }
}
